<?php
/**
 * Classe mantenedora da inicializa��o do Event Management System
 *
 * @author Alessandro
 */
class EmsController extends CustomController {
    public function filterLocal()
    {
        return array(
            array(
                'MyTestFilter + index'
                , 'variavel' => 'passando um valor para filtro'
/*                , 'variavel'=>Yii::app()->request->getParam('variavel',NULL), */ /* Recebendo por post um valor */
            )
        );
    }

    // Metodo que e executado sempre que o controler for invocado, e apos
    // a execucao dos filtros.
    public function beforeAction()
    {
        return true;    // false para o processamento
    }

    // Metodo que e executado sempre que o controler terminar sua execucao
    public function afterAction()
    {
        return true;    // false para o processamento
    }

    /**
     * Action principal do controller, que apresenta a interface basica do sistema
     */
    public function actionIndex()
    {
        // Redireciona para a pagina de noticias, que sera a pagina inicial do sistema
        $this->redirect(array('noticias/index'));
    }

    // Aqui funciona da mesma forma, porem usamos um layout diferente
    public function actionIndexSemLayout()
    {
        $myArray = array('variavel'=>$this->umMetodoQualquer());
        // Modifica o layout padrao, para o simples, onde so queremos inclusao de cabecalhos
        $this->layout = 'simples';
        // Renderiza uma visao passando dados
        $this->render("index", $myArray);
    }

    public function actionCadastro()
    {
        $model=new CadastroForm();
        $msg_cadastro = "";
        if (isset($_POST['CadastroForm'])) {
            $model->attributes=$_POST['CadastroForm'];
            if ($model->cadastrar())
                $msg_cadastro = "Usuário cadastrado com sucesso.";
            else
                $msg_cadastro = "Erro no cadastro.";
        }
        $this->render("cadastro", array('model'=>$model, 'msg_cadastro'=>$msg_cadastro));
        //$this->render("cadastro");
    }
    
    public function actionLogin()
    {
        $model=new LoginForm();

        // if it is ajax validation request
        if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
        {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }

        // collect user input data
        if(isset($_POST['LoginForm']))
        {
            $model->attributes=$_POST['LoginForm'];
            // validate user input and redirect to the previous page if valid
            if($model->validate() && $model->login())
                $this->redirect(Yii::app()->user->returnUrl);
        }
        // display the login form
        $this->render('login',array('model'=>$model));
    }

    public function actionLogout()
    {
        Yii::app()->user->logout();
        $this->redirect(Yii::app()->homeUrl);
    }

    public function actionSobre()
    {
        $this->render("sobre");
    }

    public function actionPesquisar()
    {
        $model=Evento::model()->findAll();
        $this->layout = "simples";
        $this->render("pesquisar", array('model'=>$model));
    }

    // Um metodo que poderia ser privado tambem, e nao sera acessivel pela url
    public function umMetodoQualquer()
    {
        return 'Um valor de teste';
    }
}
